package com.pick.base.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 密码工具类
 * 使用BCrypt进行密码加密，提供更高的安全性
 */
public class PasswordUtil {

    private static final PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

    /**
     * 加密密码
     * @param password 原始密码
     * @return 加密后的密码
     */
    public static String encrypt(String password) {
        return passwordEncoder.encode(password);
    }

    /**
     * 验证密码
     * @param password 原始密码
     * @param encryptedPassword 加密后的密码
     * @return 是否匹配
     */
    public static boolean verify(String password, String encryptedPassword) {
        return passwordEncoder.matches(password, encryptedPassword);
    }

    /**
     * 获取密码编码器实例
     * @return PasswordEncoder实例
     */
    public static PasswordEncoder getPasswordEncoder() {
        return passwordEncoder;
    }
}